package Java8实战._3_Stream_用流收集数据._2_归约和汇总;

import Java8实战._3_Stream_用流收集数据.Dish;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class _0_求个数 {

    public static void main(String[] args) {

        List<Dish> menu = Arrays.asList(
                new Dish("pork",false,800, Dish.Type.MEAT),
                new Dish("beef",false,700, Dish.Type.MEAT),
                new Dish("chicken", false, 400, Dish.Type.MEAT),
                new Dish("french fries", true, 530, Dish.Type.OTHER),
                new Dish("rice", true, 350, Dish.Type.OTHER),
                new Dish("season fruit", true, 120, Dish.Type.OTHER),
                new Dish("pizza", true, 550, Dish.Type.OTHER),
                new Dish("prawns", false, 300, Dish.Type.FISH),
                new Dish("salmon", false, 450, Dish.Type.FISH)
        );

        long count;

        count = menu.stream()
                .collect(Collectors.counting())
                ;
        System.out.println("菜品个数1：" + count);

        count = menu.stream().count();
        System.out.println("菜品个数2：" + count);

        count = menu.stream()
                .map(e -> 1l)
                .reduce(0l,Long::sum);
        System.out.println("菜品个数3：" + count);

        count = menu.stream()
                .collect(Collectors.reducing(0l,e -> 1l,Long::sum));
        System.out.println("菜品个数4：" + count);
    }
}
